package xyz.magicjson.core.example;

import lombok.extern.slf4j.Slf4j;
import xyz.magicjson.core.annotation.ESBEndpoint;
import xyz.magicjson.core.model.Result;
import org.springframework.stereotype.Service;

/**
 * 示例服务类，演示如何使用@ESBEndpoint注解。
 */
@Slf4j
@Service
public class ExampleService {

    /**
     * 简单的示例方法，返回输入的字符串
     *
     * @param input 输入字符串
     * @return 输入的字符串
     */
    @ESBEndpoint(name = "echo", description = "回显服务")
    public String echo(String input) {
        log.info("接收到请求: {}", input);
        return input;
    }
    
    /**
     * 计算两个数的和
     *
     * @param a 第一个数
     * @param b 第二个数
     * @return 两个数的和
     */
    @ESBEndpoint(name = "add", description = "加法服务")
    public Result<Integer> add(int a, int b) {
        log.info("执行加法: {} + {}", a, b);
        return Result.success("计算成功", a + b);
    }
    
    /**
     * 获取用户信息
     *
     * @param id 用户ID
     * @return 用户信息
     */
    @ESBEndpoint(name = "getUserById", protocol = "http", requiresAuth = true)
    public Result<User> getUserById(Long id) {
        log.info("获取用户信息, ID: {}", id);
        
        // 模拟从数据库获取用户
        User user = new User();
        user.setId(id);
        user.setName("测试用户");
        user.setAge(30);
        user.setEmail("test@example.com");
        
        return Result.success("获取用户成功", user);
    }
} 